// 解构获取导出的属性和方法
Component({
	// 这个玩意应该是传递参数时使用,可在wxml中直接使用
	properties: {
		// 这里定义了 innerText 属性，属性值可以在组件使用时指定
		innerText: {
			type: String,
			value: "default value 3242432"
		},
		bind_status: {
			type: Number,
			value: ""
		},
		errcode: {
			type: Number,
			value: ""
		}
	},
	data: {
		showStudentVerifyDialog: false,
		studentcheckCode: "" // 获取学生身份的code
	},
	onLoad() {
		// 如果缓存里面有code, 获取一下
		const code = wx.getStorageSync("CODE_STORAGE_KEY") || ''
		if (code) {
			this.setData({
				studentcheckCode: code
			})
			this.checkStudentIdentity()
		}
		this.checkStudentPluginForUpdate()
	},
	methods: {
		onShowStudentVerifyDialog() {
			this.setData({
				showStudentVerifyDialog: true
			});
		},
		checkStudentPluginForUpdate() {
			if (!wx.getPluginUpdateManager || !wx.getUpdateManager) {
				return
			}
			// 检查学生验证插件更新
			const pluginManager = wx.getPluginUpdateManager({
				pluginId: 'wxa16657d57059e0f0'
			})
			const weappManager = wx.getUpdateManager()
			pluginManager.onUpdateReady(() => {
				weappManager.applyUpdate()
			})
			pluginManager.onUpdateFailed(() => {
				// TODO: 更新失败开发者可做上报，方便监控
			})
		},
		onShowStudentVerifyDialog() {
			this.setData({
				showStudentVerifyDialog: true
			})
		},
		onStudentVerifyClose() {
			if (!this.data.studentcheckCode) {
				return
			}
			// 验证学生身份
			this.checkStudentIdentity()
		},
		onStudentVerifyAuth(e) {
			const code = e.detail.wx_studentcheck_code
			if (code) {
				this.setData({
					studentcheckCode: code
				})
				// 2小时有效，缓存到本地
				wx.setStorageSync("CODE_STORAGE_KEY", e.detail.wx_studentcheck_code)
				// 验证学生身份
				this.checkStudentIdentity()
			}
		},
		checkStudentIdentity(opt = {}) {
			this.triggerEvent('customEvent', {
				data: this.data.studentcheckCode
			});
			if (!this.data.studentcheckCode) {
				opt.fail && opt.fail({
					errMsg: 'no student code'
				})
				return
			}
			var timer =setTimeout(() => {
				// 成功
				if (this.data.errcode===0) {
					clearTimeout(timer);
				} else {
					// 失败清空所有数据
					this.setData({
						studentcheckCode: '',
					})
					wx.setStorageSync("CODE_STORAGE_KEY", '')
					clearTimeout(timer);
				}
				opt.success && opt.success(res)
			}, 2000);

			// })
		}
	}
});